package controller.services.interfaces;


import controller.services.impl.JsfServiceFactory;
import controller.services.interfaces.admin.AdminService;
import controller.services.interfaces.reprodutivo.CoberturaService;
import controller.services.interfaces.reprodutivo.DestinoService;
import controller.services.interfaces.reprodutivo.LeitaoService;
import controller.services.interfaces.reprodutivo.LeitegadaService;
import controller.services.interfaces.reprodutivo.ObsLeitegadaService;
import controller.services.interfaces.reprodutivo.ParicaoService;
import controller.services.interfaces.reprodutivo.PesoService;
import controller.services.interfaces.reprodutivo.PorcaService;
import controller.services.interfaces.reprodutivo.RacaService;
import controller.services.interfaces.reprodutivo.ReprodutorService;
import controller.services.interfaces.reprodutivo.SuinoService;
import controller.services.interfaces.reprodutivo.TecnicoResponsavelService;
import controller.services.interfaces.reprodutivo.TentativaService;
import controller.services.interfaces.usuario.UsuarioService;

public abstract class ServiceFactory {
	public static final int JSF = 1;

	public abstract UsuarioService getUsuarioService();

	public abstract AdminService getAdminService();

	public abstract CoberturaService getCoberturaService();

	public abstract DestinoService getDestinoService();

	public abstract LeitaoService getLeitaoService();

	public abstract LeitegadaService getLeitegadaService();

	public abstract ObsLeitegadaService getObsLeitegadaService();

	public abstract ParicaoService getParicaoService();

	public abstract PesoService getPesoService();

	public abstract PorcaService getPorcaService();

	public abstract RacaService getRacaService();

	public abstract ReprodutorService getReprodutorService();

	public abstract SuinoService getSuinoService();

	public abstract TecnicoResponsavelService getTecnicoResponsavelService();

	public abstract TentativaService getTentativaService();

	public static ServiceFactory getServiceFactory(int qualFabrica) {

		switch (qualFabrica) {
		case JSF:
			return new JsfServiceFactory();
		default:
			return null;
		}
	}
}
